{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "amended-composer",
   "metadata": {},
   "source": [
    "框架\n",
    "\n",
    "    一、导入数据\n",
    "    二、原始序列的检验\n",
    "    三、一阶差分序列的检验\n",
    "    四、定阶（参数调优)\n",
    "    五、建模与预测\n",
    "    \n",
    "    参考材料：《Python数据分析与挖掘实践》"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "quarterly-measurement",
   "metadata": {},
   "source": [
    "## 工具准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "short-partner",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import json\n",
    "import itertools\n",
    "\n",
    "from IPython.core.interactiveshell import InteractiveShell\n",
    "InteractiveShell.ast_node_interactivity = \"all\"\n",
    "\n",
    "from matplotlib.pylab import style #自定义图表风格\n",
    "style.use('ggplot')\n",
    "\n",
    "# 解决中文乱码问题\n",
    "plt.rcParams['font.sans-serif'] = ['Simhei']\n",
    "# 解决坐标轴刻度负号乱码\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "#pip install statsmodels\n",
    "from statsmodels.graphics.tsaplots import plot_acf,plot_pacf  #自相关图、偏自相关图\n",
    "from statsmodels.tsa.stattools import adfuller as ADF #平稳性检验\n",
    "from statsmodels.stats.diagnostic import acorr_ljungbox #白噪声检验\n",
    "import statsmodels.api as sm #D-W检验,一阶自相关检验\n",
    "from statsmodels.graphics.api import qqplot #画QQ图,检验一组数据是否服从正态分布\n",
    "from statsmodels.tsa.arima.model import ARIMA"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "chicken-metabolism",
   "metadata": {},
   "source": [
    "## 导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "liquid-listening",
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('../saleByTopFromSeries.json','r',encoding='utf-8') as f:\n",
    "    listRS = json.load(f)\n",
    "index = 6\n",
    "pyearAndMonth = listRS[index][\"yearAndMonth\"]\n",
    "yearAndMonth = pyearAndMonth[:42]\n",
    "psalesData= listRS[index][\"salesData\"]\n",
    "salesData = psalesData[:42]\n",
    "series = listRS[index][\"series\"]\n",
    "seriesId = listRS[index][\"seriesId\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "mounted-bearing",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 创建字典对象\n",
    "pdata = {\"date\":pyearAndMonth,\"sale\":psalesData}\n",
    "\n",
    "# 创建dataframe\n",
    "psale = pd.DataFrame(pdata)\n",
    "\n",
    "# # 转换日期数据类型\n",
    "# index = pd.DatetimeIndex(yearAndMonth)\n",
    "\n",
    "# 将日期设置索引值\n",
    "psale.set_index(['date'],inplace=True)\n",
    "\n",
    "# 转换销售量数据类型\n",
    "psale.sale=psale.sale.astype('float')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "decreased-retreat",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "42"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 历史数据长度\n",
    "g_datalen = len(salesData)\n",
    "    \n",
    "\n",
    "g_datalen"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "sonic-breakdown",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Index: 42 entries, 2017/10 to 2021/3\n",
      "Data columns (total 1 columns):\n",
      " #   Column  Non-Null Count  Dtype  \n",
      "---  ------  --------------  -----  \n",
      " 0   sale    42 non-null     float64\n",
      "dtypes: float64(1)\n",
      "memory usage: 672.0+ bytes\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sale</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017/10</th>\n",
       "      <td>0.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017/11</th>\n",
       "      <td>0.78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017/12</th>\n",
       "      <td>0.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018/1</th>\n",
       "      <td>0.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018/2</th>\n",
       "      <td>0.47</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         sale\n",
       "date         \n",
       "2017/10  0.88\n",
       "2017/11  0.78\n",
       "2017/12  0.59\n",
       "2018/1   0.93\n",
       "2018/2   0.47"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 创建字典对象\n",
    "data = {\"date\":yearAndMonth,\"sale\":salesData}\n",
    "\n",
    "# 创建dataframe\n",
    "sale = pd.DataFrame(data)\n",
    "\n",
    "# # 转换日期数据类型\n",
    "# index = pd.DatetimeIndex(yearAndMonth)\n",
    "\n",
    "# 将日期设置索引值\n",
    "sale.set_index(['date'],inplace=True)\n",
    "\n",
    "# 转换销售量数据类型\n",
    "sale.sale=sale.sale.astype('float')\n",
    "\n",
    "primitiveSale = sale\n",
    "\n",
    "# 查看数据信息|\n",
    "sale.info()\n",
    "sale.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "searching-assistant",
   "metadata": {},
   "source": [
    "## 原始序列的检验"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "asian-poison",
   "metadata": {},
   "source": [
    "#### 单位根检验，满足该条件，则拒绝原假设（非平稳序列），说明是平稳序列\n",
    "ADF(sale.sale)[1]<0.05\n",
    "#### 白噪声检验，满足该条件，则拒绝原假设（纯随机序列），说明是非白噪声\n",
    "acorr_ljungbox(sale,lags=1)['lb_pvalue'].values[0]<0.05\n",
    "#### 进行差分运算\n",
    "sale=sale.diff(periods=1, axis=0).dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "separate-chase",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------------------第1次计算---------------------:\n",
      " 单位根检验： (-5.452202573375329, 2.6291350683837115e-06, 0, 41, {'1%': -3.60098336718852, '5%': -2.9351348158036012, '10%': -2.6059629803688282}, -9.19255575578687) \n",
      "白噪声检验：     lb_stat  lb_pvalue\n",
      "1  1.176245   0.278122\n",
      "---------------------第2次计算---------------------:\n",
      " 单位根检验： (-11.158380743434066, 2.828139415198418e-20, 0, 40, {'1%': -3.6055648906249997, '5%': -2.937069375, '10%': -2.606985625}, -2.0975934855361302) \n",
      "白噪声检验：      lb_stat  lb_pvalue\n",
      "1  12.376407   0.000435\n",
      "\n",
      "经历了1阶差分\n"
     ]
    }
   ],
   "source": [
    "d = 0\n",
    "while(True):\n",
    "    print(\"---------------------第{}次计算---------------------:\\n\".format(str(d+1)),\n",
    "          \"单位根检验：\",ADF(sale.sale),\"\\n白噪声检验：\",acorr_ljungbox(sale,lags=1))\n",
    "    if (ADF(sale.sale)[1]<0.05) and (acorr_ljungbox(sale,lags=1)['lb_pvalue'].values[0]<0.05):\n",
    "        break\n",
    "    else:\n",
    "        d = d+1\n",
    "        sale=sale.diff(periods=1, axis=0).dropna()\n",
    "print(\"\\n经历了{}阶差分\".format(str(d)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "intensive-bridges",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:966: UserWarning: Non-stationary starting autoregressive parameters found. Using zeros as starting parameters.\n",
      "  warn('Non-stationary starting autoregressive parameters'\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:978: UserWarning: Non-invertible starting MA parameters found. Using zeros as starting parameters.\n",
      "  warn('Non-invertible starting MA parameters found.'\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n"
     ]
    }
   ],
   "source": [
    "(p, q) =(sm.tsa.arma_order_select_ic(sale,max_ar=3,max_ma=3,ic='aic')['aic_min_order'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "descending-secondary",
   "metadata": {},
   "outputs": [],
   "source": [
    "# plot_acf(sale,lags=g_datalen-1-d).show()\n",
    "# plot_pacf(sale,lags=g_datalen/2-1-d).show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "union-television",
   "metadata": {},
   "source": [
    "## 建模及预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "knowing-moisture",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(0, 0, 0)x(0, 0, 0, 12) - AIC:125.42348652590255\n",
      "ARIMA(0, 0, 0)x(0, 0, 1, 12) - AIC:1173.7896041923782\n",
      "ARIMA(0, 0, 0)x(0, 1, 0, 12) - AIC:59.848873009721025"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "ARIMA(0, 0, 0)x(0, 1, 1, 12) - AIC:28.736261650439648\n",
      "ARIMA(0, 0, 0)x(1, 0, 0, 12) - AIC:63.34154700281146\n",
      "ARIMA(0, 0, 0)x(1, 0, 1, 12) - AIC:61.34229716678126\n",
      "ARIMA(0, 0, 0)x(1, 1, 0, 12) - AIC:29.8998744427377"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "ARIMA(0, 0, 0)x(1, 1, 1, 12) - AIC:28.269795620890143\n",
      "ARIMA(0, 0, 1)x(0, 0, 0, 12) - AIC:94.34671641164464\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(0, 0, 1)x(0, 0, 1, 12) - AIC:1288.1434144574096\n",
      "ARIMA(0, 0, 1)x(0, 1, 0, 12) - AIC:48.90923693284567\n",
      "ARIMA(0, 0, 1)x(0, 1, 1, 12) - AIC:28.16427962510719\n",
      "ARIMA(0, 0, 1)x(1, 0, 0, 12) - AIC:55.43451258769454\n",
      "ARIMA(0, 0, 1)x(1, 0, 1, 12) - AIC:52.09337671194546\n",
      "ARIMA(0, 0, 1)x(1, 1, 0, 12) - AIC:30.688960953520336\n",
      "ARIMA(0, 0, 1)x(1, 1, 1, 12) - AIC:28.959711583137793"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "ARIMA(0, 1, 0)x(0, 0, 0, 12) - AIC:46.10823394317259\n",
      "ARIMA(0, 1, 0)x(0, 0, 1, 12) - AIC:913.961917600363\n",
      "ARIMA(0, 1, 0)x(0, 1, 0, 12) - AIC:47.802269243380074"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "ARIMA(0, 1, 0)x(0, 1, 1, 12) - AIC:25.665804632486065\n",
      "ARIMA(0, 1, 0)x(1, 0, 0, 12) - AIC:35.44014690399474\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(0, 1, 0)x(1, 0, 1, 12) - AIC:1072.3849334176175\n",
      "ARIMA(0, 1, 0)x(1, 1, 0, 12) - AIC:25.327053148049554\n",
      "ARIMA(0, 1, 0)x(1, 1, 1, 12) - AIC:24.169103606957503\n",
      "ARIMA(0, 1, 1)x(0, 0, 0, 12) - AIC:41.80839052540822"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "ARIMA(0, 1, 1)x(0, 0, 1, 12) - AIC:1076.0295390290369\n",
      "ARIMA(0, 1, 1)x(0, 1, 0, 12) - AIC:39.50970402628884\n",
      "ARIMA(0, 1, 1)x(0, 1, 1, 12) - AIC:21.594548563190635\n",
      "ARIMA(0, 1, 1)x(1, 0, 0, 12) - AIC:24.50983367775428"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(0, 1, 1)x(1, 0, 1, 12) - AIC:1106.3548095033264\n",
      "ARIMA(0, 1, 1)x(1, 1, 0, 12) - AIC:23.206738667527528\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(0, 1, 1)x(1, 1, 1, 12) - AIC:20.604287388483538\n",
      "ARIMA(1, 0, 0)x(0, 0, 0, 12) - AIC:47.54010767213579\n",
      "ARIMA(1, 0, 0)x(0, 0, 1, 12) - AIC:1374.6791525662204\n",
      "ARIMA(1, 0, 0)x(0, 1, 0, 12) - AIC:44.53113313034202"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "ARIMA(1, 0, 0)x(0, 1, 1, 12) - AIC:25.825456142126814\n",
      "ARIMA(1, 0, 0)x(1, 0, 0, 12) - AIC:36.77749346028038\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 0, 0)x(1, 0, 1, 12) - AIC:38.554304411591325\n",
      "ARIMA(1, 0, 0)x(1, 1, 0, 12) - AIC:24.983567899795446\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 0, 0)x(1, 1, 1, 12) - AIC:24.428689531793054\n",
      "ARIMA(1, 0, 1)x(0, 0, 0, 12) - AIC:43.93703647273071\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 0, 1)x(0, 0, 1, 12) - AIC:1299.8950067322726\n",
      "ARIMA(1, 0, 1)x(0, 1, 0, 12) - AIC:37.21652686406618\n",
      "ARIMA(1, 0, 1)x(0, 1, 1, 12) - AIC:20.317516646139808\n",
      "ARIMA(1, 0, 1)x(1, 0, 0, 12) - AIC:25.83147359754038\n",
      "ARIMA(1, 0, 1)x(1, 0, 1, 12) - AIC:27.176216084139902\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 0, 1)x(1, 1, 0, 12) - AIC:20.519814016155266\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 0, 1)x(1, 1, 1, 12) - AIC:18.739236772853516\n",
      "ARIMA(1, 1, 0)x(0, 0, 0, 12) - AIC:43.59671233683977\n",
      "ARIMA(1, 1, 0)x(0, 0, 1, 12) - AIC:1271.522835266748\n",
      "ARIMA(1, 1, 0)x(0, 1, 0, 12) - AIC:47.22088527332551\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 1, 0)x(0, 1, 1, 12) - AIC:24.931401292286708\n",
      "ARIMA(1, 1, 0)x(1, 0, 0, 12) - AIC:32.18541592089125\n",
      "ARIMA(1, 1, 0)x(1, 0, 1, 12) - AIC:1302.897212154025"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "ARIMA(1, 1, 0)x(1, 1, 0, 12) - AIC:25.089241750266215\n",
      "ARIMA(1, 1, 0)x(1, 1, 1, 12) - AIC:23.625032710004803\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 1, 1)x(0, 0, 0, 12) - AIC:43.253821982660405\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 1, 1)x(0, 0, 1, 12) - AIC:1065.4024129777208\n",
      "ARIMA(1, 1, 1)x(0, 1, 0, 12) - AIC:41.174682558420834\n",
      "ARIMA(1, 1, 1)x(0, 1, 1, 12) - AIC:23.536193310592108\n",
      "ARIMA(1, 1, 1)x(1, 0, 0, 12) - AIC:26.278252691244894\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARIMA(1, 1, 1)x(1, 0, 1, 12) - AIC:1095.7277118714833\n",
      "ARIMA(1, 1, 1)x(1, 1, 0, 12) - AIC:24.33768395647951\n",
      "ARIMA(1, 1, 1)x(1, 1, 1, 12) - AIC:22.281967896470174\n",
      "          pdq     pdq_x_PDQs        aic\n",
      "47  (1, 0, 1)  (1, 1, 1, 12)  18.739237\n"
     ]
    }
   ],
   "source": [
    "p =d= q = range(0, 2) \n",
    "pdq = list(itertools.product(p, d, q)) \n",
    "pdq_x_PDQs = [(x[0], x[1], x[2], 12) for x in list(itertools.product(p, d, q))] \n",
    "a=[]\n",
    "b=[]\n",
    "c=[]\n",
    "wf=pd.DataFrame()\n",
    "for param in pdq:\n",
    "    for seasonal_param in pdq_x_PDQs:\n",
    "        try:\n",
    "            mod = sm.tsa.statespace.SARIMAX(primitiveSale,order=param,seasonal_order=seasonal_param,enforce_stationarity=False,enforce_invertibility=False)\n",
    "            results = mod.fit()\n",
    "            print('ARIMA{}x{} - AIC:{}'.format(param, seasonal_param, results.aic))\n",
    "            a.append(param)\n",
    "            b.append(seasonal_param)\n",
    "            c.append(results.aic)\n",
    "        except:\n",
    "            continue\n",
    "wf['pdq']=a\n",
    "wf['pdq_x_PDQs']=b\n",
    "wf['aic']=c\n",
    "param = wf[wf['aic']==wf['aic'].min()]\n",
    "print(wf[wf['aic']==wf['aic'].min()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "exempt-consolidation",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:539: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.\n",
      "  % freq, ValueWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for seasonal ARMA. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                     SARIMAX Results                                      \n",
      "==========================================================================================\n",
      "Dep. Variable:                               sale   No. Observations:                   42\n",
      "Model:             SARIMAX(1, 0, 1)x(1, 1, 1, 12)   Log Likelihood                  -4.370\n",
      "Date:                            Sat, 20 Nov 2021   AIC                             18.739\n",
      "Time:                                    16:16:36   BIC                             22.602\n",
      "Sample:                                10-01-2017   HQIC                            18.937\n",
      "                                     - 03-01-2021                                         \n",
      "Covariance Type:                              opg                                         \n",
      "==============================================================================\n",
      "                 coef    std err          z      P>|z|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "ar.L1          0.9350      0.034     27.857      0.000       0.869       1.001\n",
      "ma.L1         -1.0000    1.8e+04  -5.55e-05      1.000   -3.53e+04    3.53e+04\n",
      "ar.S.L12      -0.6675      0.489     -1.365      0.172      -1.626       0.291\n",
      "ma.S.L12      -1.0002   1.06e+04  -9.42e-05      1.000   -2.08e+04    2.08e+04\n",
      "sigma2         0.0475    726.683   6.54e-05      1.000   -1424.226    1424.321\n",
      "===================================================================================\n",
      "Ljung-Box (L1) (Q):                   0.02   Jarque-Bera (JB):                 1.24\n",
      "Prob(Q):                              0.88   Prob(JB):                         0.54\n",
      "Heteroskedasticity (H):               0.37   Skew:                            -0.68\n",
      "Prob(H) (two-sided):                  0.30   Kurtosis:                         2.90\n",
      "===================================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n"
     ]
    }
   ],
   "source": [
    "mod = sm.tsa.statespace.SARIMAX(primitiveSale, \n",
    "                                order=param['pdq'].values[0], \n",
    "                                seasonal_order=param['pdq_x_PDQs'].values[0],   \n",
    "                                enforce_stationarity=False,\n",
    "                                enforce_invertibility=False)\n",
    "results = mod.fit()\n",
    "print(results.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "american-adobe",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x226b1e1f780>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x226b57c3550>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x226b1e66780>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x226b57c3a20>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, '奥迪Q5L汽车销量预测')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEHCAYAAACk6V2yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABuhklEQVR4nO2dd3hUZdqH76mZSS+TXgkdQgcpoggG/Owg2NDVta19V6y7awFdC7quYkFWV0FXXRUVOyJEQBEQFEILhpZKSO+TZPr5/jhkIGSSmYSUmfje15UL5pz3nPOcM8lv3nnepygkSZIQCAQCQZ9D2dsGCAQCgaB7EAIvEAgEfRQh8AKBQNBHEQIvEAgEfRQh8AKBQNBHEQIvEAgEfRQh8IIO8d5777Fz587eNuO0OHLkCL/88kuHjzObzTgcjm6wqHtobGzEarW22CZJEk1NTTRHRzc2NuJppPSOHTsoLS3tcjsF3YdCxMELPEWSJKKioli6dClXXHGFyzGNjY3Mnz+f5557jkGDBrXYt3XrVtLT02loaOgJcwGwWq3ce++9XHvttUycOBGAO+64g5KSElatWtWhcy1btox///vf7NixA7Va3e7YzZs387e//Y0vv/yS0NBQ7HY7RqORkJAQbrnlFgYMGMBDDz1EZWUlERERLY5NSEggLi4Of39/l+f+4YcfqK2tJTg42HmtK664gtDQUDQaDVVVVdx9992sW7eOo0ePYrFYKCwsZOjQoU6B37BhA/Hx8dx9991kZWU5P7h37drV4lq33367075JkyZx//33M2/evA49N0HvIWbwgnY544wz6NevH2lpaYwYMYLo6GieeOIJ0tLSnD/BwcF89NFHAPj7+zN69GhmzpzJ0aNHW5zLz88PnU7X5rX++9//kpKSgl6v54ILLqC4uNi57+KLL0ahUDh/EhISANi4cWO7YqtWqxk6dCgzZ87kgw8+oLq6mvfee4+ff/6ZlJQU509iYiLh4eFkZWU5j62srMRoNNLU1ERTUxOvvPIKN954IzabDZPJhMlkorGxkcrKylbXffjhh0lJSSEwMBCTycRzzz3HNddcA4Ber8fPzw+73c748eNZuXJlq+dkt9ux2Wwuf5rP0cyZZ55JUVERWVlZvPTSSzgcDubPn8/atWvZv38/L730EuPHj2fXrl3s3r2bgwcPEh8fD8Czzz5LYmIizz33HN9++y2HDx8mJiaGmJgYXnjhBWpra3n++ecpLS1Fp9O5/WATeBfi3RK0i5+fH//5z3/Iz88nMjKSyMhInnvuOT755BPuuusu/vnPf3LVVVfh5+fnPGbhwoWEh4cTERHBggULePfddwGw2+3U1tZiMBicY7/55hsmTpzIli1buOGGG3j11VdJT0/nj3/8I9dccw3r168HYPv27fz666/0798fAKXSs7mJQqHgjjvuYMSIEYSHh7N48WKmTp3K6tWr3R4bFRWFVqtFoVA4XR333HMP99xzDwEBAQDYbDasVit2u9153L/+9S+2bNnC3r17iYiI4MILL+TNN9/k9ddfZ9WqVU7bly1bRmRkZKsZsd1u58EHHyQ5OdmlXVOnTsVms6HRaJzbfvvtNz744AO++OIL3n77baeAAxQWFrb6NtWMv78/77zzDna7nfvuu4+pU6cSExPDiBEj8Pf3R6lU8vLLL3PJJZe4fV4C70MIvKBdmsVo7NixXHLJJbz33ntYrVbefvttKioqCAwMBEClUjmPUSgU/PnPfwbAYrFw1113sWjRInbt2kV6ejoVFRUApKSkOM//9ttvc+aZZ3L77bcD8MwzzzBt2jQKCwux2+04HA7Gjh2LQqHokP3r16/H39+fs846iy1btvDKK6+wa9cuYmNjCQwMdNpts9m44447uPfee53HNov2gQMHmDt3Lp9++ilr167lo48+4qeffnJ5vX379vH444+TkZHB2Wef3WLfp59+SlJSEuvWraOpqYnzzz+fyZMnt7qnu+++m99++43ffvvN5TUeeeSRVsdERESwevVqlEol5557LgCrVq3ivvvuw+Fw4HA4SEtLw2w2M2fOHJ577jksFgv33nsvjzzyCDExMc5zvfDCC9x0003O10ql0uMPVIF3IQRe0C4KhYKdO3fy0UcfERkZye233055eTn19fVUVVVx8803O8cBzJgxA51Ox6BBg1iyZEkL4XdF81f+3bt3O33kAGlpaYAsmHV1dQAkJydTUVHB9OnTee2119qc4Z5MQUEBixYtIjU1lVWrVrF7924GDhxIQUFBixkw4HIBNSsrizvuuIMvv/yS1NRUNm7c2OLbitVqxWq1Ov3laWlpvP/++1x11VVoNBqsViuvvfYas2fPZsqUKZx11lmo1Wpyc3P54Ycf+O677yguLiYmJoYZM2ZQ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ihXcdtttlJaWOvf5+/vz/vvvt7LZz8+vVwtCqdVqryxI5a12gbCts/iabcq33kL92GNYzj0Xjvck7hFbPB148OBBGhoaGDRoUKt9ZrPZ2VpNr9dTUlLictuppKenk56e7nx9avaX2WzulcVOtVrdavZ94403ct111wFyA+NVq1Y5XSL19fXs2bOH5ORkiouLiYyM5MMPP+Thhx9m9erVnHHGGYSGhtLQ0EBAQADbtm2jvLycsrIycnNz0ev1SJLk7JqjUChQKBSYzWZnN52PP/7YadsNN9zg8tuB2Wzu1ew+b80u9Fa7QNjWWXzNttB9+1ADxh9/xHRSr9yuoL1MVo8E3mg0snz5cu677z6X+3U6nVOcmsMaXW3zdZ544gl27txJbW0tl19+OWazmYsuuoh+/fqxfPlyBgwYwH//+19eeOEFzjjjDBITE8nJyeHvf/87r732GnV1dVRXV7NixQqGDx/O+PHjefvtt8nLy+Oyyy4jLy+Pt956i2PHjvH++++TlZXFLbfcQnFxMfPmzcNut6NUKr2mpINAIPAM1fGWkJq9ezFdcEGPXdetwNtsNl588UXmz5/vbIR8KqmpqWRnZzNo0CDy8/OJi4sjIiKi1bbT4bHHgtm/X+N+YAcYNszKE0/UeTy+rq6OefPmOb9+7du3D6PRyKxZs/jss89YsmQJN998M48//ji5ubm88847zpn76tWrGT9+PIWFhdx6660cPnyYsrIyfvvtNx588EH69evHu+++y5gxYxgzZgwXXngh1113Hddff73TRfT555+jVCq55JJLuvQ5CASC7kWdlweAZt++nr2uuwHr168nJyeHVatWsWrVKoYPH47dbueqq65yjpkwYQILFy6kurqaXbt28dRTTwG43OaL2O12NBoNkiQRGhrqdD0FBgY6F1YbGhqoq6sjNjaWl19+mdDQUKcLx2w2o1QqKS8v59577+WTTz7h1ltvRa1W8+yzz7J37160Wi3JycnOa27ZsoXt27dz/vnnc/jwYa688koqKysB+O9//8vs2bO59tpre/hJCASCjqJobER1fA3N6wR+1qxZzJo1q90x/v7+LFy4kD179nDppZc6uwC52tZZOjLT7mrKysoYPHiwc5ZdUlKCUqkkKiqK2bNnU1xcTFVVFV999RVnnXUWGRkZLFmyxPmNJz8/n8zMTIqKinj22WfJ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N97Ir7/+ylVXXcWWLVv405/+xD333MNtt93GvuNv3Icffuj8f0FBAffee2+La9x9992tQh+zs7MZPXo08+bNY/r06UydOpV58+Yxfvx4Nm7c2CP3LhC4Y/WhDWAJ4LppY53bpiSPBIXEV7+6rx11/3ufM+C5i3E42g3mc+JwSNh1srAfrfXe3gvqvDzssbHg134kkTUtTRb44/k2XW5Ht5y1DzFx4kTuuOMONm7cyFVXXcX555/Pddddx/z5853ZpiDXh6mtrUWlUvHQQw/x2WefUVVVxdVXX8348eOdM/7333+fmTNnYjQa+eKLLygvL+fQoUO8//77BAcHM2zYMM477zxUKhXnnHMOS5Ys4euvv6aqqorrrruOl19+WTTgFngFDofEEeU6oozTW4REXjI+jee/hk1H9nDLzAntnuPzY8tpCttJXmkNqbFh7Y4FKK4ygsYEQGmTF7to8vJcZrCeimXECALefhtVbi72/v273o4uP2M3EfzYY2j2d201SeuwYdS1kZ17Mnq9nszMTB577DF27NjBY489xvDhw3nooYfYsWMHzz77LJWVlc6krr/+9a8MGTIEtVrdQoyLioo4ePAg1113HXPmzOH1119HrVZz4MABzj//fKKjo9GdVJdi48aNzJs3j8rKSqxWK19++SVHjx4VpQoEXkHG7hzsQflM1dzTYnv/2DBU9f3Yb93V7vE/Zx+lKWwHAAeLKz0S+APHTkSkVNm9dwavys/H5EGS58k9Wn/XAt9brFq1ivfffx9Jkpg3bx7nnHMOM2bMICAggHHjxlFcXMzgwYO56aab6H/8DVKpVAQFBbU616effkphYSEzZ87krbfeoqSkhC1btpCTk8PXX39NQEAAt99+OyD79keMGMHdd9/Nli1bqK+v57zzzuPTTz/FarX26DMQCFzx/vYfQAk3TD2r1b5o61hKNb+2e/xrG7+D41HQR0rLAfcFynLL5YqqWPUYFV7aF6G+HlVFhUczeNugQUhaLZp9+zBdemmXm+IzAu/JTLs7mD17NnPmzOH6669n0KBBREdHU1BQQFlZmbNaZGBgIG+//TZqtRpJkrBarc7/n8yf//xnzj77bFatWsXkyZOprq4mISGBK6+8EpBF3d/fH6vVSkREBFdeeSVlZWXU1dVhNBopKyvjnHPOYeDAgTgcDqfbRyDoDbbXrMNPmcbY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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fore = results.forecast(6)\n",
    "plt.plot(pd.DatetimeIndex(psale.index), psale.sale, label=\"原始数据\",color=\"b\")\n",
    "plt.plot(pd.DatetimeIndex(primitiveSale.index), primitiveSale.sale, label=\"阉割数据\",color=\"g\")\n",
    "plt.plot(fore.index, fore.values, label=\"预测结果\",color=\"r\")\n",
    "plt.legend(loc=\"upper left\")\n",
    "plt.title(series + \"汽车销量预测\")  # 图形标题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "naughty-analyst",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x226b5b63668>]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x226b5b8cf28>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x226b5ba5588>]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x226b5bc6fd0>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x226b5be3550>]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x226b5c08fd0>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x226b5c21518>]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x226b5c44eb8>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "primitiveSale.index = pd.DatetimeIndex(primitiveSale.index)\n",
    "from statsmodels.tsa.seasonal import seasonal_decompose\n",
    "decomposition = seasonal_decompose(primitiveSale)\n",
    "trend = decomposition.trend #趋势效应\n",
    "seasonal = decomposition.seasonal #季节效应\n",
    "residual = decomposition.resid #随机效应\n",
    "plt.subplot(411)\n",
    "plt.plot(primitiveSale, label=u'原始数据')\n",
    "plt.legend(loc='best')\n",
    "plt.subplot(412)\n",
    "plt.plot(trend, label=u'趋势')\n",
    "plt.legend(loc='best')\n",
    "plt.subplot(413)\n",
    "plt.plot(seasonal,label=u'季节性')\n",
    "plt.legend(loc='best')\n",
    "plt.subplot(414)\n",
    "plt.plot(residual, label=u'残差')\n",
    "plt.legend(loc='best')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "stable-novel",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
